home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / rpg / crossfir.001 / crossfir~ / eutl / errlib / test1.c < prev   
C/C++ Source or Header  |  1994-01-14  |  2KB  |  112 lines

  1. #include "errlib.h"
  2. #include <stdio.h>
  3.  
  4. void ST1()
  5. {
  6.   throwerr("foo","bar","Just Checking");
  7. }
  8.  
  9. void SimpleTest()
  10. {
  11.   WITH_HANDLING {
  12.     ST1();
  13.     fprintf(stderr,"SimpleTest failed: didn't raise exception\n");
  14.     exit(1);
  15.   } HANDLE {
  16.     printf("SimpleTest passed\n");
  17.   }
  18.   END_HANDLING;
  19. }
  20.  
  21. char *rrt_p = "ReRaiseTestPackage";
  22. char *rrt_eid = "ReRaiseTestErrorId";
  23.  
  24. void RRT2()
  25. {
  26.   throwerr(rrt_p,rrt_eid,"ReRaiseTest\n");
  27. }
  28.  
  29. void RRT1()
  30. {
  31.   WITH_HANDLING {
  32.     RRT2();
  33.     fprintf(stderr,"ReRaiseTest failed: RRT2 didn't raise exception\n");
  34.     exit(1);
  35.   } HANDLE {
  36.     RERAISE();
  37.   } 
  38.   END_HANDLING;
  39. }
  40.  
  41. void ReRaiseTest()
  42. {
  43.   WITH_HANDLING {
  44.     RRT1();
  45.     fprintf(stderr,"ReRaiseTest failed: didn't raise exception\n");
  46.     exit(1);
  47.   } HANDLE {
  48.     if (exception_package == rrt_p &&
  49.     exception_eid == rrt_eid) {
  50.       printf("ReRaiseTest passed\n");
  51.     } else {
  52.       printf("ReRaiseTest failed: wront package or errorid\n");
  53.     }
  54.   } 
  55.   END_HANDLING;
  56. }
  57.  
  58. char *hst_p = "HandleSomeTestPackage";
  59. char *hst_e1 = "Handle Exception 1";
  60. char *hst_e2 = "Handle Exception 2";
  61.  
  62. void HST2(int x)
  63. {
  64.   throwerr(hst_p,x==1?hst_e1:hst_e2,"HandleSomeTest");
  65. }
  66.  
  67. void HST1(int x)
  68. {
  69.   WITH_HANDLING {
  70.     HST2(x);
  71.   } HANDLE {
  72.     BEGIN_MATCH;
  73.     EXCP_MATCH(hst_p,hst_e1) {
  74.       CLEANUP_HANDLING;return;
  75.     }
  76.     END_MATCH;
  77.   }
  78.   END_HANDLING;
  79.   fprintf(stderr,"HST2 didn't raise exception\n");
  80.   exit(1);
  81. }
  82.  
  83. void HandleSomeTest()
  84. {
  85.   WITH_HANDLING {
  86.     HST1(1);
  87.   } HANDLE {
  88.     fprintf(stderr,"HST1 didn't handle exception\n");
  89.     exit(1);
  90.   }
  91.   END_HANDLING;
  92.   WITH_HANDLING {
  93.     HST1(2);
  94.     fprintf(stderr,"HST2 didn't reraise exception\n");
  95.   } HANDLE {
  96.     BEGIN_MATCH;
  97.     EXCP_MATCH(hst_p,hst_e2) {
  98.     } 
  99.     END_MATCH;
  100.   }
  101.   END_HANDLING;
  102.   printf("HandleSomeTest passed.\n");
  103. }
  104.  
  105. main()
  106. {
  107.   SimpleTest();
  108.   ReRaiseTest();
  109.   HandleSomeTest();
  110.   exit(0);
  111. }
  112.